home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / ImageCodec.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  7.6 KB  |  199 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        ImageCodec.mod
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.0
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE ImageCodec;
  23.  
  24. IMPORT SYSTEM, Types, Quickdraw, Dialogs, ImageCompression, Components;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. CONST
  31.     codecGetCodecInfo*            = $00;
  32.     codecGetCompressionTime*        = $01;
  33.     codecGetMaxCompressionSize*    = $02;
  34.     codecPreCompress*            = $03;
  35.     codecBandCompress*            = $04;
  36.     codecPreDecompress*            = $05;
  37.     codecBandDecompress*            = $06;
  38.     codecCDSequenceBusy*            = $07;
  39.     codecGetCompressedImageSize*    = $08;
  40.     codecGetSimilarity*            = $09;
  41.     codecTrimImage*                = $0A;
  42.     codecRequestSettings*        = $0B;
  43.     codecGetSettings*            = $0C;
  44.     codecSetSettings*            = $0D;
  45.     codecCDSequenceFlush*        = $0E;
  46.     codecSetTimeCode*            = $0F;
  47.  
  48.     codecCanScale*                = ASH(1,0);
  49.     codecCanMask*                = ASH(1,1);
  50.     codecCanMatte*                = ASH(1,2);
  51.     codecCanTransform*            = ASH(1,3);
  52.     codecCanTransferMode*        = ASH(1,4);
  53.     codecCanCopyPrev*            = ASH(1,5);
  54.     codecCanSpool*                = ASH(1,6);
  55.     codecCanClipVertical*        = ASH(1,7);
  56.     codecCanClipRectangular*        = ASH(1,8);
  57.     codecCanRemapColor*            = ASH(1,9);
  58.     codecCanFastDither*            = ASH(1,10);
  59.     codecCanSrcExtract*            = ASH(1,11);
  60.     codecCanCopyPrevComp*        = ASH(1,12);
  61.     codecCanAsync*                = ASH(1,13);
  62.     codecCanMakeMask*            = ASH(1,14);
  63.     codecCanShift*                = ASH(1,15);
  64.     codecCanAsyncWhen*            = ASH(1,16);
  65.     codecCanShieldCursor*        = ASH(1,17);
  66.     codecCanManagePrevBuffer*    = ASH(1,18);
  67.  
  68.  
  69. TYPE
  70.     CodecCapabilities* = RECORD
  71.         flags*:                    LONGINT;
  72.         wantedPixelSize*:        INTEGER;
  73.         extendWidth*:            INTEGER;
  74.         extendHeight*:            INTEGER;
  75.         bandMin*:                INTEGER;
  76.         bandInc*:                INTEGER;
  77.         pad*:                    INTEGER;
  78.         time*:                    LONGINT;
  79.     END;
  80.  
  81.  
  82. CONST
  83.     codecConditionFirstBand*        = ASH(1,0);
  84.     codecConditionLastBand*        = ASH(1,1);
  85.     codecConditionFirstFrame*    = ASH(1,2);
  86.     codecConditionNewDepth*        = ASH(1,3);
  87.     codecConditionNewTransform*    = ASH(1,4);
  88.     codecConditionNewSrcRect*    = ASH(1,5);
  89.     codecConditionNewMask*        = ASH(1,6);
  90.     codecConditionNewMatte*        = ASH(1,7);
  91.     codecConditionNewTransferMode* = ASH(1,8);
  92.     codecConditionNewClut*        = ASH(1,9);
  93.     codecConditionNewAccuracy*    = ASH(1,10);
  94.     codecConditionNewDestination* = ASH(1,11);
  95.     codecConditionFirstScreen*    = ASH(1,12);
  96.     codecConditionDoCursor*        = ASH(1,13);
  97.     codecConditionCatchUpDiff*    = ASH(1,14);
  98.     codecConditionCodecChangedMask* = ASH(1,31);
  99.  
  100.     codecInfoResourceType*        = LONG("cdci");
  101.     codecInterfaceVersion*        = 2;
  102.  
  103.  
  104. TYPE
  105.     CodecCompressParams* = RECORD
  106.         sequenceID*:                ImageCompression.ImageSequence;
  107.         imageDescription*:        ImageCompression.ImageDescriptionHandle;
  108.         data*:                    Types.Ptr;
  109.         bufferSize*:                LONGINT;
  110.         frameNumber*:            LONGINT;
  111.         startLine*:                LONGINT;
  112.         stopLine*:                LONGINT;
  113.         conditionFlags*:            LONGINT;
  114.         callerFlags*:            ImageCompression.CodecFlags;
  115.         capabilities*:            POINTER TO CodecCapabilities;
  116.         progressProcRecord*:        ImageCompression.ICMProgressProcRecord;
  117.         completionProcRecord*:    ImageCompression.ICMCompletionProcRecord;
  118.         flushProcRecord*:        ImageCompression.ICMFlushProcRecord;
  119.         srcPixMap*:                Quickdraw.PixMap;
  120.         prevPixMap*:                Quickdraw.PixMap;
  121.         spatialQuality*:            ImageCompression.CodecQ;
  122.         temporalQuality*:        ImageCompression.CodecQ;
  123.         similarity*:                Types.Fixed;
  124.         dataRateParams*:            ImageCompression.DataRateParamsPtr;
  125.         reserved*:                LONGINT;
  126.     END;
  127.  
  128.     CodecDecompressParams* = RECORD
  129.         sequenceID*:                ImageCompression.ImageSequence;
  130.         imageDescription*:        ImageCompression.ImageDescriptionHandle;
  131.         data*:                    Types.Ptr;
  132.         bufferSize*:                LONGINT;
  133.         frameNumber*:            LONGINT;
  134.         startLine*:                LONGINT;
  135.         stopLine*:                LONGINT;
  136.         conditionFlags*:            LONGINT;
  137.         callerFlags*:            ImageCompression.CodecFlags;
  138.         capabilities*:            POINTER TO CodecCapabilities;
  139.         progressProcRecord*:        ImageCompression.ICMProgressProcRecord;
  140.         completionProcRecord*:    ImageCompression.ICMCompletionProcRecord;
  141.         dataProcRecord*:            ImageCompression.ICMDataProcRecord;
  142.         port*:                    Quickdraw.CGrafPtr;
  143.         dstPixMap*:                Quickdraw.PixMap;
  144.         maskBits*:                Quickdraw.BitMapPtr;
  145.         mattePixMap*:            Quickdraw.PixMapPtr;
  146.         srcRect*:                Types.Rect;
  147.         matrix*:                    POINTER TO ImageCompression.MatrixRecord;
  148.         accuracy*:                ImageCompression.CodecQ;
  149.         transferMode*:            INTEGER;
  150.         frameTime*:                ImageCompression.ICMFrameTimePtr;
  151.         reserved*:                ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF LONGINT;
  152.         matrixFlags*:            Types.SInt8;
  153.         matrixType*:                Types.SInt8;
  154.         dstRect*:                Types.Rect;
  155.     END;
  156.  
  157.  
  158. CONST
  159.     matrixFlagScale2x*            = ASH(1,7);
  160.  
  161.  
  162. PROCEDURE CDGetCodecInfo*(storage: Types.Handle; VAR info: ImageCompression.CodecInfo): Components.ComponentResult;
  163.     EXTERNAL PASCAL;
  164. PROCEDURE CDGetCompressionTime*(storage: Types.Handle; src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; depth: INTEGER; VAR spatialQuality: ImageCompression.CodecQ; VAR temporalQuality: ImageCompression.CodecQ; VAR time: LONGINT): Components.ComponentResult;
  165.     EXTERNAL PASCAL;
  166. PROCEDURE CDGetMaxCompressionSize*(storage: Types.Handle; src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; depth: INTEGER; quality: ImageCompression.CodecQ; VAR size: LONGINT): Components.ComponentResult;
  167.     EXTERNAL PASCAL;
  168. PROCEDURE CDPreCompress*(storage: Types.Handle; VAR params: CodecCompressParams): Components.ComponentResult;
  169.     EXTERNAL PASCAL;
  170. PROCEDURE CDBandCompress*(storage: Types.Handle; VAR params: CodecCompressParams): Components.ComponentResult;
  171.     EXTERNAL PASCAL;
  172. PROCEDURE CDPreDecompress*(storage: Types.Handle; VAR params: CodecDecompressParams): Components.ComponentResult;
  173.     EXTERNAL PASCAL;
  174. PROCEDURE CDBandDecompress*(storage: Types.Handle; VAR params: CodecDecompressParams): Components.ComponentResult;
  175.     EXTERNAL PASCAL;
  176. PROCEDURE CDCodecBusy*(storage: Types.Handle; seq: ImageCompression.ImageSequence): Components.ComponentResult;
  177.     EXTERNAL PASCAL;
  178. PROCEDURE CDGetCompressedImageSize*(storage: Types.Handle; desc: ImageCompression.ImageDescriptionHandle; data: Types.Ptr; bufferSize: LONGINT; dataProc: ImageCompression.ICMDataProcRecordPtr; VAR dataSize: LONGINT): Components.ComponentResult;
  179.     EXTERNAL PASCAL;
  180. PROCEDURE CDGetSimilarity*(storage: Types.Handle; src: Quickdraw.PixMapHandle; (*CONST*)VAR srcRect: Types.Rect; desc: ImageCompression.ImageDescriptionHandle; data: Types.Ptr; VAR similarity: Types.Fixed): Components.ComponentResult;
  181.     EXTERNAL PASCAL;
  182. PROCEDURE CDTrimImage*(storage: Types.Handle; Desc: ImageCompression.ImageDescriptionHandle; inData: Types.Ptr; inBufferSize: LONGINT; dataProc: ImageCompression.ICMDataProcRecordPtr; outData: Types.Ptr; outBufferSize: LONGINT; flushProc: ImageCompression.ICMFlushProcRecordPtr; VAR trimRect: Types.Rect; progressProc: ImageCompression.ICMProgressProcRecordPtr): Components.ComponentResult;
  183.     EXTERNAL PASCAL;
  184. PROCEDURE CDRequestSettings*(storage: Types.Handle; settings: Types.Handle; VAR rp: Types.Rect; filterProc: Dialogs.ModalFilterUPP): Components.ComponentResult;
  185.     EXTERNAL PASCAL;
  186. PROCEDURE CDGetSettings*(storage: Types.Handle; settings: Types.Handle): Components.ComponentResult;
  187.     EXTERNAL PASCAL;
  188. PROCEDURE CDSetSettings*(storage: Types.Handle; settings: Types.Handle): Components.ComponentResult;
  189.     EXTERNAL PASCAL;
  190. PROCEDURE CDCodecFlush*(storage: Types.Handle): Components.ComponentResult;
  191.     EXTERNAL PASCAL;
  192. PROCEDURE CDCodecSetTimeCode*(storage: Types.Handle; timeCodeFormat: (*ΔΔUNIVΔΔ*) Types.Ptr; timeCodeTime: (*ΔΔUNIVΔΔ*) Types.Ptr): Components.ComponentResult;
  193.     EXTERNAL PASCAL;
  194.  
  195. (* $ALIGN RESET*)
  196. (* $POP*)
  197.  
  198.  END ImageCodec.
  199.